{
 "cells": [
  {
   "cell_type": "markdown",
   "metadata": {},
   "source": [
    "Copyright &copy; 2015 Ondrej Martinsky, All rights reserved\n",
    "\n",
    "[www.quantandfinancial.com](http://www.quantandfinancial.com)\n",
    "# Principal Component Analysis (PCA)"
   ]
  },
  {
   "cell_type": "code",
   "execution_count": 1,
   "metadata": {
    "collapsed": false
   },
   "outputs": [
    {
     "name": "stdout",
     "output_type": "stream",
     "text": [
      "Using matplotlib backend: Qt4Agg\n",
      "Populating the interactive namespace from numpy and matplotlib\n"
     ]
    }
   ],
   "source": [
    "from numpy import testing\n",
    "from mpl_toolkits.mplot3d import Axes3D\n",
    "%pylab\n",
    "%matplotlib inline\n",
    "seed(0)\n",
    "class Eigen:\n",
    "    def __init__(self,value,vector):\n",
    "        self.value,self.vector=value,vector"
   ]
  },
  {
   "cell_type": "markdown",
   "metadata": {},
   "source": [
    "## Load/Create Data\n",
    "Create three series of data which we will analyze using PCA"
   ]
  },
  {
   "cell_type": "code",
   "execution_count": 2,
   "metadata": {
    "collapsed": false,
    "scrolled": true
   },
   "outputs": [
    {
     "name": "stdout",
     "output_type": "stream",
     "text": [
      "Dimensionality:  (3, 100)\n"
     ]
    },
    {
     "data": {
      "image/png": "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\n",
      "text/plain": [
       "<matplotlib.figure.Figure at 0x1514f00c898>"
      ]
     },
     "metadata": {},
     "output_type": "display_data"
    }
   ],
   "source": [
    "data3D = zeros((3,100))\n",
    "data3D[0] = linspace(0,1,100) + rand(100)*0.1\n",
    "data3D[1] = linspace(1,2,100) + rand(100)*0.5\n",
    "data3D[2] = linspace(0.2,0.5,100)\n",
    "\n",
    "print('Dimensionality: ', data3D.shape)\n",
    "\n",
    "plot(data3D.transpose());\n",
    "title('Components of the 3D data displayed as individual series');"
   ]
  },
  {
   "cell_type": "markdown",
   "metadata": {},
   "source": [
    "## Calculate Correlation and Covariance Matrix $\\Sigma$"
   ]
  },
  {
   "cell_type": "markdown",
   "metadata": {
    "collapsed": false
   },
   "source": [
    "#### Covariance matrix $\\Sigma$\n",
    "$$ \\Sigma_{x,y} = \\frac{1}{n}\\sum_{i=1}^{n}((X_i-\\bar{X})(Y_i-\\bar{Y})) = E[(X-E[X])(Y-E[Y])] $$\n",
    "Calculate covariance matrix between three series of data"
   ]
  },
  {
   "cell_type": "code",
   "execution_count": 3,
   "metadata": {
    "collapsed": false
   },
   "outputs": [
    {
     "name": "stdout",
     "output_type": "stream",
     "text": [
      "[[ 0.08241935  0.07541586  0.0251183 ]\n",
      " [ 0.07541586  0.08911996  0.02334904]\n",
      " [ 0.0251183   0.02334904  0.0077288 ]]\n"
     ]
    }
   ],
   "source": [
    "Sigma = cov(data3D)\n",
    "print(Sigma)"
   ]
  },
  {
   "cell_type": "markdown",
   "metadata": {},
   "source": [
    "#### Correlation Matrix\n",
    "$$ correl_{x,y} = \\frac{\\Sigma_{x,y}}{\\sigma_x \\sigma_y} $$"
   ]
  },
  {
   "cell_type": "code",
   "execution_count": 4,
   "metadata": {
    "collapsed": false
   },
   "outputs": [
    {
     "name": "stdout",
     "output_type": "stream",
     "text": [
      "[[ 1.          0.95201736  0.99980609]\n",
      " [ 0.95201736  1.          0.95785949]\n",
      " [ 0.99980609  0.95785949  1.        ]]\n"
     ]
    }
   ],
   "source": [
    "Correlation = corrcoef(Sigma)\n",
    "print(Correlation)"
   ]
  },
  {
   "cell_type": "markdown",
   "metadata": {},
   "source": [
    "## Calculate Eigenvalues and Eigenvectors"
   ]
  },
  {
   "cell_type": "markdown",
   "metadata": {},
   "source": [
    "Eigenvalues is diagonal in matrix $\\Lambda$\n",
    "\n",
    "Eigenvectors $V$ are calculated in such way that matrix $\\Lambda$ is as much \"diagonal\" as possible. Eigenvalues are then on that diagonal and the other cells are as close to 0 as possible\n",
    "\n",
    "$\\Sigma = V\\Lambda V^T$"
   ]
  },
  {
   "cell_type": "code",
   "execution_count": 5,
   "metadata": {
    "collapsed": true
   },
   "outputs": [],
   "source": [
    "eig_vals, V = linalg.eig(Sigma)"
   ]
  },
  {
   "cell_type": "markdown",
   "metadata": {},
   "source": [
    "### Eigen Values and Eigenvectors\n",
    "Eigenvectors are columns in the matrix $V$\n",
    "\n",
    "Eigenvalues are numbers from diagonal in matrix $\\Lambda$"
   ]
  },
  {
   "cell_type": "code",
   "execution_count": 6,
   "metadata": {
    "collapsed": false
   },
   "outputs": [
    {
     "name": "stdout",
     "output_type": "stream",
     "text": [
      "[  1.68549069e-01   1.06571537e-02   6.18892395e-05]\n",
      "\n",
      "[[-0.67799357 -0.68061157 -0.27765557]\n",
      " [-0.704953    0.70905721 -0.01670755]\n",
      " [-0.20824503 -0.18440652  0.96053539]]\n"
     ]
    }
   ],
   "source": [
    "print(eig_vals)\n",
    "print()\n",
    "print(V)"
   ]
  },
  {
   "cell_type": "markdown",
   "metadata": {},
   "source": [
    "### Determine eigenvectors with largest eigenvalues"
   ]
  },
  {
   "cell_type": "code",
   "execution_count": 7,
   "metadata": {
    "collapsed": false
   },
   "outputs": [
    {
     "name": "stdout",
     "output_type": "stream",
     "text": [
      "All eigenvectors have the same norm\n",
      "\n",
      "Eigen values and eigen vectors in descending order\n",
      "[0]   Value=0.168549, Vector=[-0.677993565383,-0.704953000036,-0.208245031249]\n",
      "      explains 94.020664% of variance\n",
      "[1]   Value=0.010657, Vector=[-0.680611571144,0.709057209012,-0.184406517166]\n",
      "      explains 5.944813% of variance\n",
      "[2]   Value=0.000062, Vector=[-0.277655568151,-0.0167075458478,0.960535394135]\n",
      "      explains 0.034523% of variance\n"
     ]
    }
   ],
   "source": [
    "eig_pairs = [Eigen(abs(eig_vals[i]), V.transpose()[i]) for i in range(len(eig_vals))]\n",
    "for v in V:\n",
    "    testing.assert_array_almost_equal(1.0, np.linalg.norm(v))\n",
    "print(\"All eigenvectors have the same norm\")\n",
    "eig_pairs.sort(key=lambda x: x.value, reverse=True)\n",
    "print()\n",
    "print('Eigen values and eigen vectors in descending order')\n",
    "for i, pair in enumerate(eig_pairs):\n",
    "    print(\"[%i]   Value=%f, Vector=[%s]\" % (i, pair.value, \",\".join([str(x) for x in pair.vector])))\n",
    "    print(\"      explains %f%% of variance\" % (100 * pair.value / sum(eig_vals)))"
   ]
  },
  {
   "cell_type": "markdown",
   "metadata": {},
   "source": [
    "Verify relationship $\\Sigma = V \\Lambda V'$\n",
    "\n",
    "by calculating $\\Lambda = V' * \\Sigma * V$"
   ]
  },
  {
   "cell_type": "code",
   "execution_count": 8,
   "metadata": {
    "collapsed": false
   },
   "outputs": [
    {
     "name": "stdout",
     "output_type": "stream",
     "text": [
      "[[  3.78861359e-02   3.61844662e-02   1.45235023e-03]\n",
      " [  3.61844662e-02   4.48061417e-02   7.19379188e-05]\n",
      " [  1.45235023e-03   7.19379188e-05   7.13081210e-03]]\n",
      "\n",
      "[[  1.74153199e-02   1.73612768e-02   8.39754602e-05]\n",
      " [  1.73612768e-02   2.25268311e-02   2.21639313e-07]\n",
      " [  8.39754602e-05   2.21639313e-07   6.57908865e-03]]\n",
      "\n",
      "[[ 0.08241935  0.07541586  0.0251183 ]\n",
      " [ 0.07541586  0.08911996  0.02334904]\n",
      " [ 0.0251183   0.02334904  0.0077288 ]]\n"
     ]
    }
   ],
   "source": [
    "Lambda = inv(V) * Sigma * V\n",
    "print(Lambda)\n",
    "print()\n",
    "print(V * Lambda * inv(V))\n",
    "print()\n",
    "print(Sigma)"
   ]
  },
  {
   "cell_type": "markdown",
   "metadata": {},
   "source": [
    "## Create Transformation Matrix\n",
    "Select only those eigenvectors (columns) which have highest eigenvalues"
   ]
  },
  {
   "cell_type": "code",
   "execution_count": 9,
   "metadata": {
    "collapsed": false
   },
   "outputs": [
    {
     "name": "stdout",
     "output_type": "stream",
     "text": [
      "Transformation matrix to 2 dimensions \n",
      "[[-0.67799357 -0.68061157]\n",
      " [-0.704953    0.70905721]\n",
      " [-0.20824503 -0.18440652]]\n"
     ]
    }
   ],
   "source": [
    "dimensions = 2\n",
    "transformation = matrix(hstack(pair.vector.reshape(-1,1) for pair in eig_pairs[:dimensions]))\n",
    "print(\"Transformation matrix to %i dimensions \" % transformation.shape[1])\n",
    "print(transformation)"
   ]
  },
  {
   "cell_type": "markdown",
   "metadata": {},
   "source": [
    "## Transform Data"
   ]
  },
  {
   "cell_type": "code",
   "execution_count": 10,
   "metadata": {
    "collapsed": false
   },
   "outputs": [],
   "source": [
    "data2D = data3D.transpose() * transformation"
   ]
  },
  {
   "cell_type": "markdown",
   "metadata": {},
   "source": [
    "## Display Data"
   ]
  },
  {
   "cell_type": "code",
   "execution_count": 11,
   "metadata": {
    "collapsed": false
   },
   "outputs": [
    {
     "name": "stdout",
     "output_type": "stream",
     "text": [
      "Dimensionality of data before PCA transformation  (100, 3)\n",
      "Dimensionality of data after PCA transformation   (100, 2)\n"
     ]
    }
   ],
   "source": [
    "print('Dimensionality of data before PCA transformation ', data3D.transpose().shape)\n",
    "print('Dimensionality of data after PCA transformation  ', data2D.shape)"
   ]
  },
  {
   "cell_type": "code",
   "execution_count": 12,
   "metadata": {
    "collapsed": false
   },
   "outputs": [
    {
     "data": {
      "image/png": "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\nRU5ErkJggg==\n",
      "text/plain": [
       "<matplotlib.figure.Figure at 0x1514f0dd828>"
      ]
     },
     "metadata": {},
     "output_type": "display_data"
    },
    {
     "data": {
      "image/png": "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\nLyJSI/8Lnei6+AQBt8AAAAAASUVORK5CYII=\n",
      "text/plain": [
       "<matplotlib.figure.Figure at 0x1514fc1e828>"
      ]
     },
     "metadata": {},
     "output_type": "display_data"
    }
   ],
   "source": [
    "fig = plt.figure()\n",
    "ax = fig.add_subplot(111, projection='3d')\n",
    "ax.view_init(elev=20, azim=45)\n",
    "for point in asarray(data3D.transpose()):\n",
    "    ax.scatter(point[0], point[1], point[2])\n",
    "title('3D data before PCA transformation')\n",
    "\n",
    "fig = plt.figure()\n",
    "ax = fig.add_subplot(111)\n",
    "for point in asarray(data2D):\n",
    "    ax.scatter(point[0], point[1])\n",
    "title('3D data transformed into 2D space using PCA')\n",
    "\n",
    "show();"
   ]
  }
 ],
 "metadata": {
  "anaconda-cloud": {},
  "kernelspec": {
   "display_name": "Python [Root]",
   "language": "python",
   "name": "Python [Root]"
  },
  "language_info": {
   "codemirror_mode": {
    "name": "ipython",
    "version": 3
   },
   "file_extension": ".py",
   "mimetype": "text/x-python",
   "name": "python",
   "nbconvert_exporter": "python",
   "pygments_lexer": "ipython3",
   "version": "3.5.2"
  }
 },
 "nbformat": 4,
 "nbformat_minor": 0
}
